package com.sort;

import java.util.Arrays;


/**
 * @author mzy
 * @create 2022-05-16 21:47
 */
public class Code01_SelectionSort {

//    public static void selectionSort(int[] arr) {
//
//        for (int i = 0; i < arr.length-1; i++) {
//            int minIndex = i;
//            for (int j = i+1; j > arr.length; j--) {
//                minIndex = arr[j] < arr[minIndex] ? j : minIndex;
//            }
//
//            int temp = arr[i];
//            arr[i] = arr[minIndex];
//            arr[minIndex] = temp;
//        }
//        System.out.println(Arrays.toString(arr));
//    }


    // public static void selectionSort(int[] arr) {
    //     if (arr == null || arr.length < 2) {
    //         return;
    //     }
    //
    //     for (int i = 0; i < arr.length - 1; i++) {
    //         int minIndex = i;
    //         for (int j = i + 1; j < arr.length; j++) {
    //             minIndex = arr[minIndex] < arr[j] ? minIndex : j;
    //         }
    //         swap(arr, i, minIndex);
    //     }
    // }


    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 5, 9, 7, 8, 4, 3};
        selectionSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    private static void selectionSort(int[] arr) {

        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            swap(arr, i, minIndex);
        }
    }
}
